home *** CD-ROM | disk | FTP | other *** search
- /* dmpmat.f -- translated by f2c (version of 3 February 1990 3:36:42).
- You must link the resulting object file with the libraries:
- -lF77 -lI77 -lm -lc (in that order)
- */
-
- #include "f2c.h"
-
- /* Common Block Declarations */
-
- struct {
- integer ielmnt, isbckt, nsbckt, iunsat, nunsat, itemps, numtem, isens,
- nsens, ifour, nfour, ifield, icode, idelim, icolum, insize,
- junode, lsbkpt, numbkp, iorder, jmnode, iur, iuc, ilc, ilr,
- numoff, isr, nmoffc, iseq, iseq1, neqn, nodevs, ndiag, iswap,
- iequa, macins, lvnim1, lx0, lvn, lynl, lyu, lyl, lx1, lx2, lx3,
- lx4, lx5, lx6, lx7, ld0, ld1, ltd, imynl, imvn, lcvn, nsnod,
- nsmat, nsval, icnod, icmat, icval, loutpt, lpol, lzer, irswpf,
- irswpr, icswpf, icswpr, irpt, jcpt, irowno, jcolno, nttbr, nttar,
- lvntmp;
- } tabinf_;
-
- #define tabinf_1 tabinf_
-
- struct {
- doublereal atime, aprog[3], adate, atitle[10], defl, defw, defad, defas,
- rstats[50];
- integer iwidth, lwidth, nopage;
- } miscel_;
-
- #define miscel_1 miscel_
-
- struct {
- doublereal achar, afield[15], oldlin[15];
- integer kntrc, kntlim;
- } line_;
-
- #define line_1 line_
-
- struct {
- integer locate[50], jelcnt[50], nunods, ncnods, numnod, nstop, nut, nlt,
- nxtrm, ndist, ntlin, ibr, numvs, numalt, numcyc;
- } cirdat_;
-
- #define cirdat_1 cirdat_
-
- struct {
- doublereal vto, beta, gamma, phi, phib, cox, xnsub, xnfs, xd, xj, xld,
- xlamda, uo, uexp, vbp, utra, vmax, xneff, xl, xw, vbi, von, vdsat,
- qspof, beta0, beta1, cdrain, xqco, xqc, fnarrw, fshort;
- integer lev;
- } mosarg_;
-
- #define mosarg_1 mosarg_
-
- struct {
- doublereal omega, time, delta, delold[7], ag[7], vt, xni, egfet, xmu,
- sfactr;
- integer mode, modedc, icalc, initf, method, iord, maxord, noncon, iterno,
- itemno, nosolv, modac, ipiv, ivmflg, ipostp, iscrch, iofile;
- } status_;
-
- #define status_1 status_
-
- struct {
- integer iprnta, iprntl, iprntm, iprntn, iprnto, limtim, limpts, lvlcod,
- lvltim, itl1, itl2, itl3, itl4, itl5, itl6, igoof, nogo, keof;
- } flags_;
-
- #define flags_1 flags_
-
- struct {
- doublereal twopi, xlog2, xlog10, root2, rad, boltz, charge, ctok, gmin,
- reltol, abstol, vntol, trtol, chgtol, eps0, epssil, epsox, pivtol,
- pivrel;
- } knstnt_;
-
- #define knstnt_1 knstnt_
-
- struct {
- doublereal cpyknt;
- integer istack[1], lorg, icore, maxcor, maxuse, memavl, ldval, numblk,
- loctab, ltab, ifwa, nwoff, ntab, maxmem, memerr, nwd4, nwd8,
- nwd16;
- } memmgr_;
-
- #define memmgr_1 memmgr_
-
- struct {
- doublereal tcstar[2], tcstop[2], tcincr[2];
- integer icvflg, itcelm[2], kssop, kinel, kidin, kovar, kidout;
- } dc_;
-
- #define dc_1 dc_
-
- struct {
- doublereal fstart, fstop, fincr, skw2, refprl, spw2;
- integer jacflg, idfreq, inoise, nosprt, nosout, nosin, idist, idprt;
- } ac_;
-
- #define ac_1 ac_
-
- struct {
- doublereal tstep, tstop, tstart, delmax, tdmax, forfre;
- integer jtrflg;
- } tran_;
-
- #define tran_1 tran_
-
- struct {
- doublereal xincr, string[15], xstart, yvar[8];
- integer itab[8], itype[8], ilogy[8], npoint, numout, kntr, numdgt;
- } outinf_;
-
- #define outinf_1 outinf_
-
- struct {
- integer maxtim, itime, icost;
- } cje_;
-
- #define cje_1 cje_
-
- struct {
- integer idebug[20];
- } debug_;
-
- #define debug_1 debug_
-
- struct {
- doublereal value[200000];
- } blank_;
-
- #define blank_1 blank_
-
- /* Table of constant values */
-
- static integer c__1 = 1;
-
- /*< subroutine dmpmat(anam) >*/
- /* Subroutine */ int dmpmat_(anam)
- doublereal *anam;
- {
- /* Format strings */
- static char fmt_10[] = "(\0020*debug*: dmpmt called by \002,a8,/,\002 *\
- debug*: mode, mdc, time, delta, icalc, itr#, initf,\002,\002 piv, ord, ncon\
- , igoof, nogo =\002,/,\002 *debug*: \002,2i5,1p2d10.2,8i5)";
- static char fmt_16[] = "(\002 *debug*: nstop, nttbr, size(irpt) = \002,\
- 3i6,/,\002 *debug*: index irpt irow jcol jcpt value\002,10x,\002\
- index irpt irow jcol jcpt value\002)";
- static char fmt_26[] =
- "(\002 *debug*: \002,5i6,1pd12.4,10x,5i6,1pd12.4)";
- static char fmt_71[] = "(\002 *debug*: irswpf = \002,18i6)";
- static char fmt_76[] = "(\002 *debug*: irswpr = \002,18i6)";
- static char fmt_81[] = "(\002 *debug*: icswpf = \002,18i6)";
- static char fmt_86[] = "(\002 *debug*: icswpr = \002,18i6)";
-
- /* System generated locals */
- integer i_1;
-
- /* Builtin functions */
- integer s_wsfe(), do_fio(), e_wsfe();
-
- /* Local variables */
- static integer i, j, irpts, istop;
- #define nodplc ((integer *)&blank_1)
- #define cvalue ((complex *)&blank_1)
- extern /* Subroutine */ int dmpmem_(), sizmem_();
-
- /* Fortran I/O blocks */
- static cilist io__3 = { 0, 0, 0, fmt_10, 0 };
- static cilist io__5 = { 0, 0, 0, fmt_16, 0 };
- static cilist io__9 = { 0, 0, 0, fmt_26, 0 };
- static cilist io__10 = { 0, 0, 0, fmt_71, 0 };
- static cilist io__11 = { 0, 0, 0, fmt_76, 0 };
- static cilist io__12 = { 0, 0, 0, fmt_81, 0 };
- static cilist io__13 = { 0, 0, 0, fmt_86, 0 };
-
-
- /*< implicit double precision (a-h,o-z) >*/
-
- /* this routine dumps out the matrix and associated pointers. */
-
- /* spice version 2g.6 sccsid=tabinf 3/15/83 */
- /*< common /tabinf/ ielmnt,isbckt,nsbckt,iunsat,nunsat,itemps,numtem, >*/
- /*< 1 isens,nsens,ifour,nfour,ifield,icode,idelim,icolum,insize, >*/
- /*< 2 junode,lsbkpt,numbkp,iorder,jmnode,iur,iuc,ilc,ilr,numoff,isr, >*/
- /*< 3 nmoffc,iseq,iseq1,neqn,nodevs,ndiag,iswap,iequa,macins,lvnim1, >*/
- /*< 4 lx0,lvn,lynl,lyu,lyl,lx1,lx2,lx3,lx4,lx5,lx6,lx7,ld0,ld1,ltd, >*/
- /*< 5 imynl,imvn,lcvn,nsnod,nsmat,nsval,icnod,icmat,icval, >*/
- /*< 6 loutpt,lpol,lzer,irswpf,irswpr,icswpf,icswpr,irpt,jcpt, >*/
- /*< 7 irowno,jcolno,nttbr,nttar,lvntmp >*/
- /* spice version 2g.6 sccsid=miscel 3/15/83 */
- /*< common /miscel/ atime,aprog(3),adate,atitle(10),defl,defw,defad, >*/
- /*< 1 defas,rstats(50),iwidth,lwidth,nopage >*/
- /* spice version 2g.6 sccsid=line 3/15/83 */
- /*< common /line/ achar,afield(15),oldlin(15),kntrc,kntlim >*/
- /* spice version 2g.6 sccsid=cirdat 3/15/83 */
- /*< common /cirdat/ locate(50),jelcnt(50),nunods,ncnods,numnod,nstop, >*/
- /*< 1 nut,nlt,nxtrm,ndist,ntlin,ibr,numvs,numalt,numcyc >*/
- /* spice version 2g.6 sccsid=mosarg 3/15/83 */
- /*< common /mosarg/ vto,beta,gamma,phi,phib,cox,xnsub,xnfs,xd,xj,xld, >*/
- /*< 1 xlamda,uo,uexp,vbp,utra,vmax,xneff,xl,xw,vbi,von,vdsat,qspof, >*/
- /*< 2 beta0,beta1,cdrain,xqco,xqc,fnarrw,fshort,lev >*/
- /* spice version 2g.6 sccsid=status 3/15/83 */
- /*< common /status/ omega,time,delta,delold(7),ag(7),vt,xni,egfet, >*/
- /*< 1 xmu,sfactr,mode,modedc,icalc,initf,method,iord,maxord,noncon, >*/
- /*< 2 iterno,itemno,nosolv,modac,ipiv,ivmflg,ipostp,iscrch,iofile >*/
- /* spice version 2g.6 sccsid=flags 3/15/83 */
- /*< common /flags/ iprnta,iprntl,iprntm,iprntn,iprnto,limtim,limpts, >*/
- /*< 1 lvlcod,lvltim,itl1,itl2,itl3,itl4,itl5,itl6,igoof,nogo,keof >*/
- /* spice version 2g.6 sccsid=knstnt 3/15/83 */
- /*< common /knstnt/ twopi,xlog2,xlog10,root2,rad,boltz,charge,ctok, >*/
- /*< 1 gmin,reltol,abstol,vntol,trtol,chgtol,eps0,epssil,epsox, >*/
- /*< 2 pivtol,pivrel >*/
- /* spice version 2g.6 sccsid=memmgr 3/15/83 */
- /*< common /memmgr/ cpyknt,istack(1),lorg,icore,maxcor,maxuse,memavl, >*/
- /*< 1 ldval,numblk,loctab,ltab,ifwa,nwoff,ntab,maxmem,memerr,nwd4, >*/
- /*< 2 nwd8,nwd16 >*/
- /* spice version 2g.6 sccsid=dc 3/15/83 */
- /*< common /dc/ tcstar(2),tcstop(2),tcincr(2),icvflg,itcelm(2),kssop, >*/
- /*< 1 kinel,kidin,kovar,kidout >*/
- /* spice version 2g.6 sccsid=ac 3/15/83 */
- /*< common /ac/ fstart,fstop,fincr,skw2,refprl,spw2,jacflg,idfreq, >*/
- /*< 1 inoise,nosprt,nosout,nosin,idist,idprt >*/
- /* spice version 2g.6 sccsid=tran 3/15/83 */
- /*< common /tran/ tstep,tstop,tstart,delmax,tdmax,forfre,jtrflg >*/
- /* spice version 2g.6 sccsid=outinf 3/15/83 */
- /*< common /outinf/ xincr,string(15),xstart,yvar(8),itab(8),itype(8), >*/
- /*< 1 ilogy(8),npoint,numout,kntr,numdgt >*/
- /* spice version 2g.6 sccsid=cje 3/15/83 */
- /*< common /cje/ maxtim,itime,icost >*/
- /* spice version 2g.6 sccsid=debug 3/15/83 */
- /*< common/debug/ idebug(20) >*/
- /* spice version 2g.6 sccsid=blank 3/15/83 */
- /*< common /blank/ value(200000) >*/
- /*< integer nodplc(64) >*/
- /*< complex cvalue(32) >*/
- /*< equivalence (value(1),nodplc(1),cvalue(1)) >*/
-
-
- /*< write (iofile,10) anam,mode,modedc, >*/
- /*< 1 time,delta,icalc,iterno,initf,ipiv,iord,noncon,igoof,nogo >*/
- io__3.ciunit = status_1.iofile;
- s_wsfe(&io__3);
- do_fio(&c__1, (char *)&(*anam), (ftnlen)sizeof(doublereal));
- do_fio(&c__1, (char *)&status_1.mode, (ftnlen)sizeof(integer));
- do_fio(&c__1, (char *)&status_1.modedc, (ftnlen)sizeof(integer));
- do_fio(&c__1, (char *)&status_1.time, (ftnlen)sizeof(doublereal));
- do_fio(&c__1, (char *)&status_1.delta, (ftnlen)sizeof(doublereal));
- do_fio(&c__1, (char *)&status_1.icalc, (ftnlen)sizeof(integer));
- do_fio(&c__1, (char *)&status_1.iterno, (ftnlen)sizeof(integer));
- do_fio(&c__1, (char *)&status_1.initf, (ftnlen)sizeof(integer));
- do_fio(&c__1, (char *)&status_1.ipiv, (ftnlen)sizeof(integer));
- do_fio(&c__1, (char *)&status_1.iord, (ftnlen)sizeof(integer));
- do_fio(&c__1, (char *)&status_1.noncon, (ftnlen)sizeof(integer));
- do_fio(&c__1, (char *)&flags_1.igoof, (ftnlen)sizeof(integer));
- do_fio(&c__1, (char *)&flags_1.nogo, (ftnlen)sizeof(integer));
- e_wsfe();
- /*< 10 format('0*debug*: dmpmt called by ',a8,/, >*/
- /*< 1 ' *debug*: mode, mdc, time, delta, icalc, itr#, initf,', >*/
- /*< 2 ' piv, ord, ncon, igoof, nogo =',/, >*/
- /*< 3 ' *debug*: ',2i5,1p2d10.2,8i5) >*/
- /*< call dmpmem(5hdmpmt) >*/
- dmpmem_("dmpmt", 5L);
-
- /* dump out the *whole* thing */
-
- /*< call sizmem(irpt,irpts) >*/
- sizmem_(&tabinf_1.irpt, &irpts);
- /*< write (iofile,16) nstop,nttbr,irpts >*/
- io__5.ciunit = status_1.iofile;
- s_wsfe(&io__5);
- do_fio(&c__1, (char *)&cirdat_1.nstop, (ftnlen)sizeof(integer));
- do_fio(&c__1, (char *)&tabinf_1.nttbr, (ftnlen)sizeof(integer));
- do_fio(&c__1, (char *)&irpts, (ftnlen)sizeof(integer));
- e_wsfe();
- /*< 16 format(' *debug*: nstop, nttbr, size(irpt) = ',3i6,/, >*/
- /*< 1 ' *debug*: index irpt irow jcol jcpt value', >*/
- /*< 2 10x,' index irpt irow jcol jcpt value') >*/
- /*< j=(irpts+1)/2 >*/
- j = (irpts + 1) / 2;
- /*< istop=j >*/
- istop = j;
- /*< do 30 i=1,istop >*/
- i_1 = istop;
- for (i = 1; i <= i_1; ++i) {
- /*< j=j+1 >*/
- ++j;
- /*< write (iofile,26) >*/
- /*< 1 i,nodplc(irpt+i),nodplc(irowno+i),nodplc(jcolno+i), >*/
- /*< 2 nodplc(jcpt+i),value(lvn+i), >*/
- /*< 3 j,nodplc(irpt+j),nodplc(irowno+j),nodplc(jcolno+j), >*/
- /*< 4 nodplc(jcpt+j),value(lvn+j) >*/
- io__9.ciunit = status_1.iofile;
- s_wsfe(&io__9);
- do_fio(&c__1, (char *)&i, (ftnlen)sizeof(integer));
- do_fio(&c__1, (char *)&nodplc[tabinf_1.irpt + i - 1], (ftnlen)sizeof(
- integer));
- do_fio(&c__1, (char *)&nodplc[tabinf_1.irowno + i - 1], (ftnlen)
- sizeof(integer));
- do_fio(&c__1, (char *)&nodplc[tabinf_1.jcolno + i - 1], (ftnlen)
- sizeof(integer));
- do_fio(&c__1, (char *)&nodplc[tabinf_1.jcpt + i - 1], (ftnlen)sizeof(
- integer));
- do_fio(&c__1, (char *)&blank_1.value[tabinf_1.lvn + i - 1], (ftnlen)
- sizeof(doublereal));
- do_fio(&c__1, (char *)&j, (ftnlen)sizeof(integer));
- do_fio(&c__1, (char *)&nodplc[tabinf_1.irpt + j - 1], (ftnlen)sizeof(
- integer));
- do_fio(&c__1, (char *)&nodplc[tabinf_1.irowno + j - 1], (ftnlen)
- sizeof(integer));
- do_fio(&c__1, (char *)&nodplc[tabinf_1.jcolno + j - 1], (ftnlen)
- sizeof(integer));
- do_fio(&c__1, (char *)&nodplc[tabinf_1.jcpt + j - 1], (ftnlen)sizeof(
- integer));
- do_fio(&c__1, (char *)&blank_1.value[tabinf_1.lvn + j - 1], (ftnlen)
- sizeof(doublereal));
- e_wsfe();
- /*< 26 format(' *debug*: ',5i6,1pd12.4,10x,5i6,1pd12.4) >*/
- /*< 30 continue >*/
- /* L30: */
- }
- /* c 51 format(" *debug*: irpt = ",18i6) */
- /* c write (iofile,56) (nodplc(irowno+i),i=1,irpts) */
- /* c 56 format(" *debug*: irowno = ",18i6) */
- /* c write (iofile,61) (nodplc(jcolno+i),i=1,irpts) */
- /* c 61 format(" *debug*: jcolno = ",18i6) */
- /* c write (iofile,66) (nodplc(jcpt +i),i=1,irpts) */
- /* c 66 format(" *debug*: jcpt = ",18i6) */
- /*< write (iofile,71) (nodplc(irswpf+i),i=1,nstop) >*/
- io__10.ciunit = status_1.iofile;
- s_wsfe(&io__10);
- i_1 = cirdat_1.nstop;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&nodplc[tabinf_1.irswpf + i - 1], (ftnlen)
- sizeof(integer));
- }
- e_wsfe();
- /*< 71 format(' *debug*: irswpf = ',18i6) >*/
- /*< write (iofile,76) (nodplc(irswpr+i),i=1,nstop) >*/
- io__11.ciunit = status_1.iofile;
- s_wsfe(&io__11);
- i_1 = cirdat_1.nstop;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&nodplc[tabinf_1.irswpr + i - 1], (ftnlen)
- sizeof(integer));
- }
- e_wsfe();
- /*< 76 format(' *debug*: irswpr = ',18i6) >*/
- /*< write (iofile,81) (nodplc(icswpf+i),i=1,nstop) >*/
- io__12.ciunit = status_1.iofile;
- s_wsfe(&io__12);
- i_1 = cirdat_1.nstop;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&nodplc[tabinf_1.icswpf + i - 1], (ftnlen)
- sizeof(integer));
- }
- e_wsfe();
- /*< 81 format(' *debug*: icswpf = ',18i6) >*/
- /*< write (iofile,86) (nodplc(icswpr+i),i=1,nstop) >*/
- io__13.ciunit = status_1.iofile;
- s_wsfe(&io__13);
- i_1 = cirdat_1.nstop;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&nodplc[tabinf_1.icswpr + i - 1], (ftnlen)
- sizeof(integer));
- }
- e_wsfe();
- /*< 86 format(' *debug*: icswpr = ',18i6) >*/
-
-
- /*< 500 return >*/
- /* L500: */
- return 0;
- /*< end >*/
- } /* dmpmat_ */
-
- #undef cvalue
- #undef nodplc
-
-
-